#ifndef _ONEBUSTIME_H
#define _ONEBUSTIME_H
#include "includes.h"

typedef struct OneBusBitSendCfg
{
    uint16_t syncLDelayTime;   //同步头阶段低电平需要的延时us
    uint16_t syncHDelayTime;   //同步头阶段高电平需要的延时us
    uint16_t Data1LDelayTime;    //数据低电平需要延时的us数
    uint16_t Data1HDelayTime;    //数据高电平需要延时的us数
    uint16_t Data0LDelayTime;    //数据低电平需要延时的us数
    uint16_t Data0HDelayTime;    //数据高电平需要延时的us数
    uint16_t StopLDelayTime;    //Stop低电平需要延时的us数
}OneBusBitSendCfg_t;

typedef struct OneBusBitSendSta
{
    uint8_t *buf;
    uint8_t bitSize;
    uint8_t bitPhase;        //发送bit的当前阶段，1-同步头低电平阶段    2-同步头高电平阶段       3 数据低电平阶段   4 数据高电平  5 -Stop低阶段   6-stop高电平
    uint16_t bitIndex;       //bit f发送的索引

}OneBusBitSendSta_t;

extern OneBusBitSendCfg_t OneBusSendCfg;
extern OneBusBitSendSta_t OneBusSta;

void Niu_OneBusTimerInit();
void Niu_OneBusTimerStart();
void Niu_OneBusTimerStop();
void Niu_OneBusSetDelay(uint16_t dly);

#endif